# -*- coding: utf-8 -*-
# @Time : 2021/4/15 10:36
# @Author : XXX
# @Site : 
# @File : ktlx2021-4-15.py
# @Software: PyCharm
import pygame, sys, random, time
# 导入所有pygame.locals里的变量（比如下面大写的QUIT变量）
from pygame.locals import *


pygame.init()
# 初始化一个游戏界面窗口
window = pygame.display.set_mode((400, 600))
# 设置游戏窗口的标题
pygame.display.set_caption("飞机")

bjimg = pygame.image.load("./img/bj.jpg") #设置背景图片
wjimg = pygame.image.load("./img/wj.png") #设置玩家飞机图片
djimg = pygame.image.load("./img/dj.png") #设置敌方飞机图片
wjzdimg= pygame.image.load("./img/zd.png") #设置玩家飞机子弹
runing = True
wjx = 200 #定义飞机X轴的变量
wjy = 530 #定义飞机Y轴的变量
wjxstep = 0 #定义飞机x轴移动的距离
wjystep = 0 #定义飞机Y轴移动的距离
djx = random.randint(30,340)
djy = 50
wjzdx = wjx
wjzdy = wjy
wjzdxstep = 0
wjzdystep = 0
def wjfw(): #控制飞机飞行的范围，不能超过界面容器的大小
    global wjx
    global wjy
    if wjx < 0:   #如果飞机x轴小于0就等于0
        wjx = 0
    elif wjx > 335: #如果飞机x轴大于335就等于335
        wjx = 335
    if wjy < 0:   #如果飞机y轴小于0就等于0
        wjy = 0
    elif wjy > 535:#如果飞机y轴大于535就等于535
        wjy = 535

def wjzdfw(): #控制飞机飞行的范围，不能超过界面容器的大小
    global wjzdx
    global wjzdy
    if wjzdx< 0:   #如果飞机x轴小于0就等于0
        wjzdx = 0
    elif wjzdx > 335: #如果飞机x轴大于335就等于335
        wjzdx = 335
    if wjzdy < 0:   #如果飞机y轴小于0就等于0
        wjzdy = 0
    elif wjzdy > 535:#如果飞机y轴大于535就等于535
        wjzdy = 535

def wjrun():  #控制飞机的运行，按下时飞机朝控制的方向飞行，松开时飞机停止飞行
    global wjxstep,wjystep
    if event.type == pygame.KEYDOWN:  #按下按键时
        if event.key == pygame.K_RIGHT: #按下右键飞机向右边移动1
            wjxstep = 1
        elif event.key == pygame.K_LEFT:#按下左键飞机向右边移动左
            wjxstep = -1
        elif event.key == pygame.K_UP:#按下上键飞机向上边移动1
            wjystep = -1
        elif event.key == pygame.K_DOWN:#按下下键飞机向下边移动1
            wjystep = 1
    if event.type == pygame.KEYUP: #松开按键
            wjxstep = 0   #飞机X轴移动为0
            wjystep = 0   #飞机Y轴移动为0

def wjzdrun():  #子弹运动
    global wjzdxstep, wjzdystep
    if event.type == pygame.KEYDOWN:  #按下按键时
        if event.key == pygame.K_RIGHT: #按下右键飞机子弹向右边移动1
            wjzdxstep = 1
        elif event.key == pygame.K_LEFT:#按下左键飞机子弹向右边移动左
            wjzdxstep = -1
        elif event.key == pygame.K_UP:#按下上键飞机子弹向上边移动1
            wjzdystep = -1
        elif event.key == pygame.K_DOWN:#按下下键飞机子弹向下边移动1
            wjzdystep = 1
        elif event.key == pygame.K_SPACE:
            wjzdystep = -1
    if event.type == pygame.KEYUP: #松开按键
            wjzdxstep = 0
            wjzdystep = 0

while runing:
    window.blit(bjimg,(0,0))  #安放背景图片 并且设置定位
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            runing = False
        wjrun()
        wjzdrun()
    window.blit(wjimg,(wjx,wjy))#安放玩家飞机图片 并且设置定位
    wjx += wjxstep #飞机X轴每次While循环都增加移动
    wjy += wjystep #飞机Y轴每次While循环都增加移动
    wjfw()    #输出设置的函数，控制飞机飞行范围
    wjzdfw()
    window.blit(djimg, (djx, djy))
    window.blit(wjzdimg,(wjzdx + 20,wjzdy))
    wjzdx += wjzdxstep  # 飞机X轴每次While循环都增加移动
    wjzdy += wjzdystep
    djy += 0.1
    pygame.display.update() #界面刷新，放在最后面

